草庐IT

java - 将 MultipartFile 转换为 java.io.File 而不复制到本地机器

全部标签

ruby-on-rails - 如何将 ActiveRecord 模型数组转换为 CSV?

我有一组ActiveRecord模型,我希望将其转换为CSV。我尝试研究像FasterCSV这样的gem,但它们似乎只适用于字符串和数组,而不适用于ActiveRecord模型。简而言之,我要转换:user1=User.firstuser2=User.lasta=[user1,user2]收件人:id,username,bio,email1,user1,user1bio,user1email1,user2,user2bio,user2email有没有简单的Rails方法可以做到这一点? 最佳答案 下面将所有用户的属性写入一个文件:C

arrays - 在 Ruby 中将数组转换为索引哈希

我有一个数组,我想做一个散列,这样我就可以快速询问“数组中有X吗?”。在perl中,有一种简单(快速)的方法可以做到这一点:my@array=qw(123);my%hash;@hash{@array}=undef;这会生成一个哈希值,如下所示:{1=>undef,2=>undef,3=>undef,}我在Ruby中想到的最好的是:array=[1,2,3]hash=Hash[array.map{|x|[x,nil]}]给出:{1=>nil,2=>nil,3=>nil}是否有更好的Ruby方法?编辑1不,Array.include?这不是一个好主意。它慢。它在O(n)而不是O(1)中执行

ruby - 将散列转换为结构

如何在ruby​​中将散列转换为结构?鉴于此:h={:a=>1,:b=>2}我想要一个这样的结构:s.a==1s.b==2 最佳答案 如果您已经定义了一个结构,并且您想要使用散列实例化一个实例:Person=Struct.new(:first_name,:last_name,:age)person_hash={first_name:"Foo",last_name:"Bar",age:29}person=Person.new(*person_hash.values_at(*Person.members))=>#

ruby - class_eval << -"end_eval", __FILE__, __LINE__ 在 Ruby 中是什么意思?

我正在学习如何在模块中使用class_eval(我对class_eval有点熟悉)并遇到了thishelpfulclassinresource_controller.那里有这样的东西:class_eval__FILE__和__LINE__在那个上下文中做了什么?我知道__FILE__引用当前文件,但整个事情到底做了什么?真的不知道如何搜索它:)。 最佳答案 __FILE__和__LINE__是一种动态常量,用于保存当前正在执行的文件和行。将它们传递到这里允许错误正确报告它们的位置。instance_eval当你运行它时$rubyfo

ruby-on-rails - ruby 2.0 rails gem 安装错误 "cannot load such file -- openssl"

我正在使用osx10.8.2安装了ruby2.0并且....尝试运行"sudogeminstallrails"时得到这个$sudogeminstallrailsERROR:Loadingcommand:install(LoadError)cannotloadsuchfile--opensslERROR:Whileexecutinggem...(NoMethodError)undefinedmethod`invoke_with_build_args'fornil:NilClass我之前使用ruby​​1.9.x和rails3.2.x工作正常 最佳答案

ruby - 无法从同一网络上的另一台计算机访问本地 Sinatra 服务器

我有一个通过textmate运行的简单Sinatra服务器,但我无法从同一网络上的另一台计算机访问。我在MacOS10.8.3上运行Ruby1.9.3p327和Sinatra1.4.1。防火墙已禁用。我在不同的网络和计算机上测试了相同的场景。计算机响应简单的ping,但当我尝试远程登录端口4567时,我无法建立连接。 最佳答案 有一个recentcommittoSinatra出于安全考虑,在开发模式下将默认监听地址从0.0.0.0更改为localhost。为了明确允许从网络访问,您需要在另一种模式(例如生产模式)下运行您的应用程序,

Ruby 的 File.open 给出 "No such file or directory - text.txt (Errno::ENOENT)"错误

我在我的Win7机器上安装了Ruby1.9.2。创建了一个简单的analyzer.rb文件。它有这一行:File.open("text.txt").each{|line|putsline}当我运行代码时,它给我这个错误:analyzer.rb:1:in`initialize':Nosuchfileordirectory-text.txt(Errno::ENOENT)fromanalyzer.rb:1:in`open'fromanalyzer.rb:1:in`'Exitcode:1我不明白。在与analyzer.rb文件相同的目录中有一个text.txt文件。我还尝试输入文件的绝对路径C

ruby-on-rails - '$:.unshift File.dirname(__FILE__)' 在做什么?

下面是做什么的,为什么它在页面顶部?$:.unshiftFile.dirname(__FILE__)https://github.com/mojombo/jekyll/blob/master/lib/jekyll.rb 最佳答案 它将当前文件的目录添加到加载路径。$:表示加载路径(这是一个数组),unshift放在数组的开头。它在那里(并在顶部)的原因是所有这些需求都不必担心路径。 关于ruby-on-rails-'$:.unshiftFile.dirname(__FILE__)'在做什

ruby - 如何将散列键转换为方法名称?

这是我的哈希:tempData={"a"=>100,"here"=>200,"c"=>"hello"}我需要像下面这样的方法来访问散列键:tempData.a#100tempData.here#200 最佳答案 你可以把你的散列包在OpenStruct中:require'ostruct'tempData={"a"=>100,"here"=>200,"c"=>"hello"}os=OpenStruct.newtempDataos.a#=>100os.here#=>200如果你真的真的想要,你也可以猴子修补Hash类,但我建议不要这样做

ruby - 严格将字符串转换为整数(或零)

对于网络编程,数字以字符串形式出现。但是to_i会将"5abc"转换为5并将"abc"转换为0,都是错误的答案。为了捕获这些,我写道:defnumber_or_nil(s)number=s.to_inumber=nilif(number.to_s!=s)returnnumberend是否有一种更简洁、更符合Ruby标准的方法来完成此转换并检测该字符串不是数字? 最佳答案 使用整数(字符串)如果字符串无法转换为整数,它将引发ArgumentError错误。Integer('5abc')#=>ArgumentError:invalidv